﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;
using System.Net;
using System.Text;
using System.Configuration;
using FastDATA;

namespace CursoUNICEUB
{
    public partial class InserirNovidade : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["aluno"] == null)
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "login", "window.location='../Account/Login.aspx?lastpage=InserirNovidade.aspx';", true);
        }

        protected void btnInserirNovidade_Click(object sender, EventArgs e)
        {
            try
            {
                DENovidade novidade = null;

                using (DCCursoDataContext banco = new DCCursoDataContext())
                {
                    novidade = new DENovidade();
                    novidade.Titulo = this.txtTitulo.Text;
                    novidade.SubTitulo = this.txtSubTitulo.Text;
                    novidade.Texto = this.txtTexto.Text;
                    novidade.Ativo = false;
                    novidade.Data = DateTime.Today;
                    if (this.fuImagem.HasFile)
                    {
                        string SaveLocation = getPostedFileName();
                        fuImagem.PostedFile.SaveAs(SaveLocation);

                        //Salvando apenas o nome do arquivo
                        StringBuilder file = new StringBuilder();
                        file.Append("\\ImgNoticia\\");
                        file.Append(this.txtTitulo.Text);
                        file.Append("_");
                        file.Append(System.IO.Path.GetFileName(fuImagem.PostedFile.FileName));
                        novidade.Imagem = file.ToString();
                    }

                    banco.DENovidades.InsertOnSubmit(novidade);

                    banco.SubmitChanges();

                    enviarEmail(novidade.Codigo);

                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "sucesso", "alert('Notícia inserida com sucesso.');window.location='../Novidades.aspx';", true);
                }
            }
            catch (Exception)
            {
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "erro", "alert('Não foi possível cadastrar uma notícia. Tente mais tarde ou ligue para 8592-4439');", true);
            }
        }

        private void enviarEmail(int codigo)
        {
            try
            {
                string body = BuildMessage(codigo);
                EmailSender.enviar("Nova notícia cadastrada", body, "guto86@gmail.com",false);
            }
            catch (Exception)
            {
            }
        }

        private string BuildMessage(int codigo)
        {
                StringBuilder message = new StringBuilder();
                message.AppendLine("Mais uma notícia foi cadastrada.<br/>");

                message.Append("Título : ");
                message.AppendLine(this.txtTitulo.Text);

                message.Append("SubTítulo : ");
                message.AppendLine(this.txtSubTitulo.Text);

                message.Append("Ative agora esta notícia : ");
                message.AppendLine("www.cursodotnet.com.br/AtivarNoticia.aspx?ID=" + codigo);

                return message.ToString().Replace(Environment.NewLine, "<br />");
        }

        private string getPostedFileName()
        {
            try
            {
                string fn = this.txtTitulo.Text + "_";
                fn += System.IO.Path.GetFileName(fuImagem.PostedFile.FileName);
                return Server.MapPath("ImgNoticia") + "\\" + fn;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}